package src.com.zaizai123;

import java.awt.*;
import java.util.concurrent.Flow;

public class ThreeLayoutsForFlowLayout {

    public static void main(String[] args) {
        // 定义一个字符串变量，虽然看着不起眼，但后续会派上用场
        String table = "first button";

        // 创建一个框架窗口，也就是未来装“按钮”们的大本营
        Frame frame = new Frame();

        // 创建三个按钮小伙伴，分别命名为“实例1”“实例2”以及“first button”（动态分配到table变量）
        Button button1 = new Button("实例1");
        Button button2 = new Button("实例2");
        Button button3 = new Button(table);

        // gtp给出的解决中文乱码问题--------------------------------
        // 设置中文支持的字体，防止乱码
        // 提示：当按钮内容包含中文时，我们使用SansSerif字体来确保文本显示正常
        button1.setFont(new Font("SansSerif", Font.PLAIN, 14));
        button2.setFont(new Font("SansSerif", Font.PLAIN, 14));
        button3.setFont(new Font("SansSerif", Font.PLAIN, 14));
        //------------------------------------------------------

        // 设置框架的布局为流式布局（FlowLayout）
        // 流式布局让组件按行排列，行满即换行，类似文字“自动换行”的效果
        //frame.setLayout(new FlowLayout()); // 默认居中对齐
        //frame.setLayout(new FlowLayout(FlowLayout.RIGHT)); // 右对齐
        frame.setLayout(new FlowLayout(FlowLayout.LEFT)); // 这里选择左对齐

        // 设置框架的尺寸为500x500，给按钮们足够的空间“表演”
        frame.setSize(500, 500);

        // 让框架变得可见，否则即使运行也看不到窗口
        frame.setVisible(true);

        // 将按钮们“搬入”框架，相当于“添加到舞台上”
        frame.add(button1);
        frame.add(button2);
        frame.add(button3);
    }
}